/*
 * 配置request请求
 * */
// 1. 引入axios
import axios from 'axios'
// 7. 引入qs
import qs from 'qs'

// 5. 引入eleui的message
import { Message } from 'element-ui'
// 2. 配置地址
axios.defaults.baseURL = 'http://127.0.0.1:5000'
// 3. 配置请求   请求超时时间 1000ms = 1s
axios.defaults.timeout = 5000
// 3.1 配置请求头
axios.interceptors.request.use(config => {
  const token = window.sessionStorage.getItem('token') || ''
  if (token) {
    // console.log(token)
    config.headers.Authorization = token
  }
  return config
})

// 4.配置请求拦截
axios.interceptors.response.use(response => {
  // console.log(config)
  // 如果code和message
  if (response.data.code !== 'undefined' && response.data.msg !== 'undefined') {
    const { code, msg } = response.data
    if (code === 0) {
      Message({
        type: 'success',
        message: msg
      })
    } else if (code === 1) {
      Message.error(msg)
    }
  }
  return response
})

// 6.配置通用的get和post请求方法
export default {
  get(url, params = {}) {
    return new Promise((resolve, reject) => {
      axios
        .get(url, {
          params
        })
        .then(response => {
          resolve(response.data)
        })
        .catch(err => {
          reject(err)
        })
    })
  },
  post(url, params = {}) {
    return new Promise((resolve, reject) => {
      // console.log(params)
      axios
        .post(url, qs.stringify(params))
        .then(response => {
          // console.log(response.data)
          resolve(response.data)
        })
        .catch(err => {
          reject(err)
        })
    })
  }
}
